home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 20 / 9 / DISK2092.ZIP / RFIX0227.ZIP / BULLET6 next >
Text File  |  1990-02-28  |  37KB  |  914 lines

  1. ======[ Fixed Test Version - Changes to RBBS-PC 17.3 ]========
  2.  
  3. Last Mod:  KG022702
  4.  
  5. Note:  BASE is the release of 17.3.
  6.  
  7. Fixes are released as RFIX0227.ZIP.
  8.  
  9. This is the chronological, detailed documentation of the changes
  10. made to 17.3, for fixing problems with 17.3.
  11.  
  12. Sysops:  17.3 now correctly supports macros in the Fast File
  13. Search, for both online and offline files.  This allows efficient
  14. implementation of many new features.  
  15.      See the two enhanced utilities CMPBBS10.ZIP and
  16. MFIDX11.ZIP for details.   You can move your files off lines
  17. and you can also list files on other BBS's.
  18.  
  19. CONVENTIONS:
  20.     The changes are assigned numbers that  correspond  to  the
  21.     month,  day, and order in which they were made.  Any mods
  22.     are dated following the modification  description.   The
  23.     lines   of   source   code  that  are  changed/modified/added  are
  24.     designated by the comment beginning in column 70 of "' iiMMDD#"
  25.     where ii is the initials of the person providing the change.
  26.  
  27. -------------------------------------------------------------------
  28. RBBS-PC.EXE         02-11-90  7:00 PM EST  Release of CPC17.3
  29. --------------------------------------------------------------------
  30.                             Summary
  31.  
  32. EXE   MOD       Short Description
  33. ---- --------   -----------------
  34. RBBS KG022702  Untrapped errors in LIT version with MIMPORT OFF
  35. RBBS KG022701  Stacked commands sometimes not working properly
  36. RBBS RH022501  Autodownload sometimes not reporting name properly
  37. RBBS KG022301  Add support for macro processing for online files
  38. RBBS KG022205  File name reported wiped out by macro processing
  39. RBBS KG022204  Add ability to vary FFS macro processing
  40. RBBS KG022203  Colors graphics door menu MENU05C bleeds on the right
  41. RBBS KG022202  Up and downloads in distributed RBBS-PC.DEF may not work
  42. RBBS KG022201  Jump no longer an option when V)iew in dir listing
  43. RBBS KG022103  LIT merges not assigning new user security right
  44. RBBS KG022102  LIT merges give compile error if SURVEY is OFF
  45. RBBS KG022101  Not correctly tracking bytes downloaded when dooring
  46. RBBS KG022001  Autodownload not working when extension not specified
  47. RBBS KG021803  Macro assign sometimes picks up wrong value
  48. RBBS KG021802  Macros in Fast File Search executed too frequently
  49. RBBS KG021801  Internal code documentation missing some cases
  50. RBBS KG021502  Logon into a conference can pick up a macro
  51. RBBS KG021501  Prompt after end of macro is repeated twice
  52. RBBS RH021501  Autodownload not working
  53.  
  54. Contributors include:
  55.  
  56.     KG - Ken Goosens
  57.     RH - Ray Horton
  58.  
  59. ------------------------[ KG022702 ]-------------------------
  60.  
  61. Problem:  When using LIT version with message import off
  62. (MIMPORT OFF), get untrapped errors when message margin of
  63. user set lower than that used by the message.
  64.  
  65. Solution:  Use new MIMPORT.LIT.
  66.  
  67. ------------------------[ KG022701 ]-------------------------
  68.  
  69. Problem:  Command stacking not always working right in msg
  70. read.  E.g. "j xxx r test" will look for messages with text "r".
  71.  
  72. Solution:  Change RBBS-PC.BAS as follows:
  73.  
  74. 4330 QuickScanMsgs = ZFalse
  75.      ReadMsgs = ZTrue
  76.      HiLiteRec = -1
  77.      ScanMsgs = ZFalse
  78.      MsgStart = 6
  79.      MsgEnd = 100
  80.      IF ZLocalUserMode OR NOT ZLocalUser THEN _
  81.         IF ReadMsgIn$ <> ZActiveMessageFile$ THEN _
  82.            ReadMsgIn$ = ZActiveMessageFile$ : _
  83.            CALL UpdtCalr ("Read Messages in " + ReadMsgIn$,1)
  84.      GOSUB 1300
  85.      GOTO 4350                                                       ' KG022701
  86.  
  87. 4360 ZWasLG$(11) = ZWasZ$
  88.      NumMsgsSelected = ZLastIndex
  89.      MsgIndex = ZAnsIndex                                            ' KG022701
  90.      ZLastIndex = 0
  91.      ToRequested = ZFalse
  92.      FromRequested = ZFalse
  93.      IF ZPageLength < 1 THEN _
  94.         ZNonStop = ZTrue
  95. 4370 MsgIndex = MsgIndex  + 1                                        ' KG022701
  96. 4371 IF MsgIndex <= NumMsgsSelected THEN _                           ' KG022701
  97.         IF LEN(ZUserIn$(ZAnsIndex)) = 1 AND _
  98.            INSTR("Cc",ZUserIn$(MsgIndex)) > 0 THEN _                 ' KG022701
  99.            GOTO 4370 _
  100.         ELSE _
  101.         CALL CheckInt (ZUserIn$(MsgIndex)) : _                       ' KG022701
  102.         IF ZErrCode <> 0 THEN _
  103.            ZWasEL = 4371 : _
  104.            GOTO 13000 _
  105.         ELSE CurMsg = ZTestedIntValue : _
  106.              ZAnsIndex = MsgIndex : _                                ' KG022701
  107.              GOTO 4415
  108.  
  109. 4400 GOSUB 12932                                                     ' KG022701
  110.      IF ZWasQ = 0 THEN _
  111.         RETURN
  112. 4402 IF LEN(ZUserIn$(ZAnsIndex)) = 1 THEN _                          ' KG022701
  113.         IF INSTR("Qq",ZUserIn$) THEN _
  114.            RETURN _
  115.         ELSE IF INSTR("Hh",LEFT$(ZUserIn$(ZAnsIndex),1)) THEN _      ' KG022701
  116.                 ZFileName$ = ZHelpPath$ + "MR" + ZHelpExtension$ : _
  117.                 GOSUB 1790 : _
  118.                 GOTO 4390
  119.      MsgIndex = 0                                                    ' KG022701
  120.      NumMsgsSelected = ZWasQ
  121.      GOTO 4370
  122.  
  123. 4416 IF INSTR("Mm",ZUserIn$(ZAnsIndex)) THEN _
  124.         AddressedToUser = ZTrue : _
  125.         GOTO 4370
  126.      ZWasA = INSTR("FfTt",ZUserIn$(ZAnsIndex))
  127.      IF ZWasA > 0 THEN _
  128.         ToRequested = (ZWasA > 2) : _
  129.         FromRequested = (ZWasA < 3) : _
  130.         GOTO 4370
  131.      IF CurMsg = 0 THEN _
  132.         IF SearchHeader$ <> "" THEN _
  133.            GOTO 4370 _
  134.         ELSE SearchString$ = ZUserIn$(ZAnsIndex) : _                 ' KG022701
  135.              CALL AllCaps (SearchString$) : _
  136.              CALL Remove (SearchString$,CHR$(34) + CHR$(39)) : _
  137.              SearchHeader$ = SearchString$ : _
  138.              SubInHeader$ = SearchHeader$ : _
  139.              GOTO 4370
  140.      CALL SkipLine (1)
  141.  
  142. ------------------------[ RH022501 ]-------------------------
  143.  
  144. Problem:  in autodownload, the name displayed to the user is wrong
  145. when default extension is added by rbbs.
  146.  
  147. Change RBBS-PC.BAS as follows:
  148.  
  149. 20247 ZWasDF = 0
  150.       CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse)
  151.       IF ZAutoDownInProgress THEN _
  152.          ZUserIn$(ZAnsIndex) = WasX$ + "." + Extension$ : _          ' RH022501
  153.          ZOutTxt$ = "Transferring -- " + _
  154.               ZUserIn$(ZAnsIndex) : _                                ' RH022501
  155.          GOSUB 21640 : _
  156.          IF ZFileSysParm > 1 THEN _
  157.             RETURN
  158.       IF INSTR("...WRK.FW .ARC.EXE.COM.OBJ.WKS.LBR.ZIP.PAK.ZOO.LZH.","."+Extension$+".") > 2 OR _
  159.          MID$(Extension$,2,1) = "Q" OR _
  160.          (ZRequireNonASCII AND Extension$ = "BAS") THEN _
  161.             ZWasDF = ZTrue
  162.  
  163. ------------------------[ KG022301 ]-------------------------
  164.  
  165. Problem:  no way to trigger macro processing for on-line files.
  166. Either not found or macro.  Now can have both.
  167.  
  168. Solution:  Add the following variable to RBBS-VAR.BAS:  ZFileLocations$
  169.  
  170. Change RBBSSUB4.BAS as follows:
  171.  
  172. (line 58700)
  173.  
  174.       SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC ' KG022204
  175.       ZOK = ZFalse
  176.       ZDotFlag = ZFalse
  177.       IF MarkingTime THEN _
  178.          CALL QuickTPut ("Searching for "+FilName$,0)
  179.       IF ZMenuIndex = 6 THEN _
  180.          GOTO 58705
  181.       NumSearch = 1
  182.       WasX = 0
  183.       WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
  184.          SDirAra$(NumSearch) <> ""
  185.          IF MarkingTime THEN _
  186.             CALL MarkTime (WasX)
  187.          WasX$ = SDirAra$(NumSearch) + _
  188.               FilName$
  189.          CALL FindFile (WasX$,ZOK)
  190.          NumSearch = NumSearch + 1
  191.       WEND
  192.       IF ZOK OR NOT ZFastFileSearch THEN _                           ' KG022301
  193.          GOTO 58710                                                  ' KG022301
  194.       CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18)                 ' KG022301
  195.       IF ZErrCode <> 0 THEN _                                        ' KG022301
  196.          GOTO 58710                                                  ' KG022301
  197.       CALL TrimTrail (FilName$,".")
  198.       CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$)
  199.       ZOK = (RecFoundAt > 0)
  200.       IF NOT ZOK THEN _                                              ' KG022301
  201.          GOTO 58710                                                  ' KG022301
  202.       ZOK = ZFalse
  203.       CALL CheckInt (MID$(RecFound$,13,4))
  204.       IF ZTestedIntValue < 1 THEN _                                  ' KG022301
  205.          GOTO 58710                                                  ' KG022301
  206.       CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66)
  207.       IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _           ' KG022301
  208.          GOTO 58710                                                  ' KG022301
  209.       FIELD 2, 66 AS LocatorRec$
  210.       GET 2, ZTestedIntValue
  211.       WasX$ = LEFT$(LocatorRec$,63)
  212.       CALL Trim (WasX$)
  213.       IF LEFT$(WasX$,2) = "M!" THEN _
  214.          ZOK = ZFalse : _                                            ' KG022301
  215.          ZGSRAra$(1) = PassToMacro$ : _                              ' KG022204
  216.          WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _                      ' KG022204
  217.          CALL Trim (WasX$) : _                                       ' KG022204
  218.          ZFileLocation$ = "" : _                                     ' KG022301
  219.          CALL MacroExe (WasX$) : _                                   ' KG022204
  220.          IF ZFileLocation$ = "" THEN _                               ' KG022301
  221.             ZOK = ZFalse : _                                         ' KG022204
  222.             GOTO 58711 _                                             ' KG022301
  223.          ELSE WasX$ = ZFileLocation$                                 ' KG022301
  224.       WasX$ = WasX$ + FilName$                                       ' KG022301
  225.       CALL FindFile (WasX$,ZOK)                                      ' KG022301
  226.       GOTO 58710                                                     ' KG022301
  227.  
  228. Change RBBSSUB5.BAS as follows:
  229.  
  230. 63336 GOSUB 63395
  231.       IF NOT ZMacroActive THEN _
  232.          ZMacroEcho = ZTrue : _
  233.          EXIT SUB
  234.       IF LEN(ZOutTxt$) < 3 THEN _
  235.          GOTO 63398
  236.       WasX$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3)
  237.       IF CompareVar > 0 THEN _
  238.          IF NOT CaseExecute THEN _
  239.             IF LEFT$(ZOutTxt$,3) = ZSmartTextCode$+"==" THEN _
  240.                GOTO 63370 _
  241.             ELSE IF LEFT$(ZOutTxt$,7) = ZSmartTextCode$ + "END ON" THEN _
  242.                     CompareVar = 0 : _
  243.                     GOTO 63336 _
  244.                   ELSE GOTO 63336
  245.       IF LEFT$(ZOutTxt$,1) <> ZSmartTextCode$ THEN _
  246.          GOTO 63398
  247.       CALL CheckInt (MID$(ZOutTxt$,2))
  248.       IF ZErrCode > 0 THEN _
  249.          GOTO 63398
  250.       IF ZTestedIntValue > 0 AND ZTestedIntValue <= ZMaxWorkVar THEN _
  251.          ZOutTxt$ = WasX$ : _  ' Macro command ask
  252.          ZForceKeyboard = ZTrue : _
  253.          ZMacroSave = ZTestedIntValue : _
  254.          ZLinesPrinted = 1 : _
  255.          ZNonStop = (ZPageLength < 1) : _
  256.          EXIT SUB
  257.       ON (1+INSTR("*0*1*B*FWT>>STON==M!M@EYEN/*TK<<:=LVNVCVLO",MID$(ZOutTxt$,2,2)))\2 GOTO _ ' KG022301
  258.          63345, _  ' Display with no Carriage Return
  259.          63347, _  ' Display with Carriage Return
  260.          63340, _  ' Display Block
  261.          63348, _  ' Display File
  262.          63343, _  ' Wait # of seconds
  263.          63350, _  ' Append to file
  264.          63355, _  ' Stack
  265.          63360, _  ' Case
  266.          63370, _  ' Case Comparison
  267.          63375, _  ' Macro execute
  268.          63380, _  ' Macro Abort
  269.          63383, _  ' Macro Echo on
  270.          63385, _  ' Macro Echo off
  271.          63336, _  ' Macro Comment
  272.          63387, _  ' Turbo Key allowed
  273.          63390, _  ' Form read
  274.          63362, _  ' Assign value to work var
  275.          63363, _  ' LV list verify
  276.          63364, _  ' NV number verify
  277.          63364, _  ' CV character verify                             ' KG022301
  278.          63367     ' LO assign file location                         ' KG022301
  279.       GOTO 63398
  280.  
  281. 63367 CALL TRIM (WasX$)                                              ' KG022301
  282.       ZFileLocation$ = WasX$                                         ' KG022301
  283.       GOTO 63336                                                     ' KG022301
  284.  
  285. ------------------------[ KG022205 ]-------------------------
  286.  
  287. Problem:  In arc view, if file invokes macro processing, the file
  288. name was no longer correct when came back and reported file not
  289. found.
  290.  
  291. 20143 ZWasZ$ = ZUserIn$(ZAnsIndex)
  292.       WasZ$ = ZWasZ$                                                 ' KG022205
  293.       CALL AllCaps (ZWasZ$)
  294.       CALL BreakFileName (ZWasZ$,Drive$,Prefix$,Ext$,ZFalse)
  295.       IF Ext$ = "" THEN _
  296.          Ext$ = ZDefaultExtension$ : _
  297.          ZWasZ$ = ZWasZ$ + "." + ZDefaultExtension$
  298.       ZFileNameHold$ = ZWasZ$
  299.       ZFileName$ = ZWasZ$
  300.       CALL BadFile (Prefix$,BadFileNameIndex)
  301.       ON BadFileNameIndex GOTO 20144,20146,20147
  302.  
  303. 20146 ZWasZ$ = WasZ$ + _                                             ' KG022205
  304.            " not found!"
  305.       CALL UpdtCalr (ZWasZ$,2)
  306.       ZOutTxt$ = ZWasZ$ + _
  307.            " Type correct filename" + ZPressEnterExpert$
  308.       ZSubParm = 1
  309.       CALL TGet
  310.       IF ZSubParm = -1 OR ZWasQ = 0 THEN _
  311.          RETURN
  312.       ZUserIn$(ZAnsIndex) = ZUserIn$(1)
  313.       GOTO 20143
  314.  
  315. ------------------------[ KG022204 ]-------------------------
  316.  
  317. Problem:  SysOps off-line files might want to process differently
  318. when get an upload, view, or download rather than execute macro
  319. only on download.
  320.  
  321. Solution:  pass D, V, or U to macro in first work variable so
  322. can alter processing.
  323.  
  324. Change RBBSSUB2.BAS as follows:
  325.  
  326. 20145 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,"V") ' KG022204
  327.       IF ZOK THEN _
  328.          GOTO 20148
  329.  
  330. Change RBBSSUB4.BAS as follows:
  331.  
  332. (line 58700)
  333.  
  334.       SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC ' KG022204
  335.       ZOK = ZFalse
  336.       ZDotFlag = ZFalse
  337.       IF MarkingTime THEN _
  338.          CALL QuickTPut ("Searching for "+FilName$,0)
  339.       IF ZMenuIndex = 6 THEN _
  340.          GOTO 58705
  341.       NumSearch = 1
  342.       WasX = 0
  343.       WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
  344.          SDirAra$(NumSearch) <> ""
  345.          IF MarkingTime THEN _
  346.             CALL MarkTime (WasX)
  347.          WasX$ = SDirAra$(NumSearch) + _
  348.               FilName$
  349.          CALL FindFile (WasX$,ZOK)
  350.          NumSearch = NumSearch + 1
  351.       WEND
  352.       IF ZOK OR NOT ZFastFileSearch THEN _                           ' KG022301
  353.          GOTO 58710                                                  ' KG022301
  354.       CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18)                 ' KG022301
  355.       IF ZErrCode <> 0 THEN _                                        ' KG022301
  356.          GOTO 58710                                                  ' KG022301
  357.       CALL TrimTrail (FilName$,".")
  358.       CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$)
  359.       ZOK = (RecFoundAt > 0)
  360.       IF NOT ZOK THEN _                                              ' KG022301
  361.          GOTO 58710                                                  ' KG022301
  362.       ZOK = ZFalse
  363.       CALL CheckInt (MID$(RecFound$,13,4))
  364.       IF ZTestedIntValue < 1 THEN _                                  ' KG022301
  365.          GOTO 58710                                                  ' KG022301
  366.       CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66)
  367.       IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _           ' KG022301
  368.          GOTO 58710                                                  ' KG022301
  369.       FIELD 2, 66 AS LocatorRec$
  370.       GET 2, ZTestedIntValue
  371.       WasX$ = LEFT$(LocatorRec$,63)
  372.       CALL Trim (WasX$)
  373.       IF LEFT$(WasX$,2) = "M!" THEN _
  374.          ZOK = ZFalse : _                                            ' KG022301
  375.          ZGSRAra$(1) = PassToMacro$ : _                              ' KG022204
  376.          WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _                      ' KG022204
  377.          CALL Trim (WasX$) : _                                       ' KG022204
  378.          ZFileLocation$ = "" : _                                     ' KG022301
  379.          CALL MacroExe (WasX$) : _                                   ' KG022204
  380.          IF ZFileLocation$ = "" THEN _                               ' KG022301
  381.             ZOK = ZFalse : _                                         ' KG022204
  382.             GOTO 58711 _                                             ' KG022301
  383.          ELSE WasX$ = ZFileLocation$                                 ' KG022301
  384.       WasX$ = WasX$ + FilName$                                       ' KG022301
  385.       CALL FindFile (WasX$,ZOK)                                      ' KG022301
  386.       GOTO 58710                                                     ' KG022301
  387.  
  388. 59336 ZUserIn$(WasI) = LEFT$(PartToPrint$,INSTR(PartToPrint$," ") - 1)
  389.       CALL FindFile (ZPersonalDrvPath$ + ZUserIn$(WasI),ZOK)
  390.       IF ZOK THEN _
  391.          ZUserIn$(WasI) = ZPersonalDrvPath$ + ZUserIn$(WasI) _
  392.       ELSE CALL RotorsDir (ZUserIn$(WasI),ZSubDir$(),ZSubDirCount + _
  393.                       ((ZUserSecLevel < ZMinSecToView) OR _
  394.                        NOT ZCanDnldFromUp),ZTrue,"D") : _            ' KG022204
  395.            GOSUB 59338
  396.       RETURN
  397.  
  398. Change RBBSSUB5.BAS as follows:
  399.  
  400. 20222 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + _
  401.                       ((ZUserSecLevel < ZMinSecToView) OR _
  402.                        NOT ZCanDnldFromUp),MarkingTime,"D")          ' KG022204
  403.  
  404. 20440 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount,ZTrue,"U")  ' KG022204
  405.  
  406. ------------------------[ KG022203 ]-------------------------
  407.  
  408. Problem:  When locally viewing the distributed color graphics
  409. door menu (MENU05C), the colors will bleed over to the right
  410. side of the boundary of the menu.   The display looks fine
  411. remotely.
  412.  
  413. Solution:  Replace MENU05C with the new one distributed in
  414. the latest merge file.
  415.  
  416. ------------------------[ KG022202 ]-------------------------
  417.  
  418. Problem:  When installing RBBS-PC for the first time and use
  419. the distributed def file RBBS-PC.DEF, the up and downloads do
  420. not work properly unless RBBS-PC is installed in a subdirectory
  421. called RBBS.
  422.  
  423. Solution:  In CONFIG, change the subdirectory for uploads from
  424. "C:\RBBS\FILES" to "C:FILES", and change the two subdirectories
  425. available for downloading from "C:\RBBS\FILES" to "C:FILES" and
  426. from "C:\RBBS\BULLETINS" to "C:BULLETINS".
  427.    These are changed in parameter 208.
  428.  
  429. ------------------------[ KG022201 ]-------------------------
  430.  
  431. Problem:  When doing a directory listing and V)iew archieve,
  432. J)ump is no longer an option after listing resumes.
  433.  
  434. Solution:  Change RBBSSUB3.BAS as follows:
  435.  
  436. 58180 ZTurboKey = -ZTurboKeyUser
  437.       ZStackC = ZTrue
  438.       CALL AskMore (ExtraPrompt$, ZTrue, ZFalse,AbortIndex,ZFalse)
  439.       IF ZSubParm = -1 THEN _
  440.          GOTO 58183
  441.       IF ZNo THEN _
  442.          GOTO 58183
  443.       CALL AllCaps (ZUserIn$(1))
  444.       IF ZUserIn$(1) = "V" THEN _
  445.          ZLastIndex = ZWasQ : _
  446.          ZAnsIndex = 1 : _
  447.          CALL GetArc : _
  448.          ZJumpSupported = ZTrue : _                                  ' KG022201
  449.          ZWasA = UpldIndex : _
  450.          GOSUB 58185 : _
  451.          UpldIndex = ZWasA : _
  452.          GOTO 58180
  453.       IF ZUserIn$(1) = "D" THEN _
  454.          ZOutTxt$ = "Download what file(s)" : _
  455.          ZStackC = ZTrue : _
  456.          CALL PopCmdStack : _
  457.          IF ZWasQ = 0 THEN _
  458.             GOTO 58180
  459.       IF ZJumpSearching THEN _
  460.          PrevSearch$ = SearchFor$ : _
  461.          SearchFor$ = ZJumpTo$ _
  462.       ELSE SearchFor$ = SearchString$ : _
  463.            IF LEN(ZUserIn$(1)) > 1 THEN _
  464.            IF NOT ZYes AND CanDnld THEN _
  465.               CALL SkipLine (1) : _
  466.               DnldFlag = UpldIndex : _
  467.               ZLastIndex = ZWasQ : _
  468.               ZAnsIndex = 1 : _
  469.               EXIT SUB
  470.       IF ZNonStop THEN IF UpldIndex > 999 THEN _
  471.          IF (SearchDate$ = "" OR NOT ZExpertUser) THEN _
  472.             ZOutTxt$ = STR$(UpldIndex) + _
  473.                " lines left to search.  Really go non-stop? (Y/[N])" : _
  474.             ZNoAdvance = ZTrue : _
  475.             ZTurboKey = -ZTurboKeyUser : _
  476.             ZSubParm = 1 : _
  477.             CALL TGet : _
  478.             CALL WipeLine (79) : _
  479.             ZNonStop = ZYes
  480.       FMSCheckPoint = 0
  481.       GOTO 58168
  482.  
  483. ------------------------[ KG022103 ]-------------------------
  484.  
  485. Problem:  LIT merges not assigned security right for new
  486. users.
  487.  
  488. Solution:  Replace the file INDEF.LIT by the new one in the lastest
  489. fix file merges.
  490.  
  491. ------------------------[ KG022102 ]-------------------------
  492.  
  493. Problem:  LIT merge generates a compile error when SURVEY 
  494. metavariable is set to OFF.
  495.  
  496. Solution:  Replace the file SURVEY.LIT by the new one in
  497. the latest fix file merges.
  498.  
  499. ------------------------[ KG022101 ]-------------------------
  500.  
  501. Problem:  When door to external protocols, not correctly tracking
  502. bytes downloaded.   Caused by misspelled variable names.
  503.  
  504. Change RBBSSUB3.BAS as follows:
  505.  
  506. 43070 ZActiveMessageFile$ = ZOrigMsgFile$
  507.       ZSubParm = 3
  508.       CALL FileLock
  509.       CALL OpenMsg
  510.       FIELD 1, 128 AS ZMsgRec$
  511.       GET 1,ZNodeRecIndex
  512.       IF ZGlobalSysop THEN _
  513.          MID$(ZMsgRec$,1,30) = "SYSOP" + SPACE$(25)
  514.       MID$(ZMsgRec$,40,2) = STR$(ZExitToDoors)
  515.       MID$(ZMsgRec$,42,2) = STR$(ZEightBit)
  516.       MID$(ZMsgRec$,44,2) = STR$(ZBPS)
  517.       MID$(ZMsgRec$,46,2) = STR$(ZUpperCase)
  518.       MID$(ZMsgRec$,48,5) = MKS$(ZNumDnldBytes!) + MID$(STR$(-ZBatchTransfer),2) ' KG022101
  519.       MID$(ZMsgRec$,53,2) = STR$(ZWasGR)
  520.       MID$(ZMsgRec$,55,2) = STR$(ZSysop)
  521.       MID$(ZMsgRec$,65,3) = CHR$(VAL(LEFT$(ZTimeLoggedOn$,2))) + _
  522.                                    CHR$(VAL(MID$(ZTimeLoggedOn$,4,2))) + _
  523.                                    CHR$(VAL(MID$(ZTimeLoggedOn$,7,2)))
  524.       MID$(ZMsgRec$,72,2) = STR$(ZPrivateDoor)
  525.       MID$(ZMsgRec$,74,1) = MID$(STR$(ZTransferFunction),2,1)
  526.       MID$(ZMsgRec$,75,1) = ZWasFT$
  527.       MID$(ZMsgRec$,113,2) = MKI$(CINT(ZTimeCredits!)/60)
  528.       MID$(ZMsgRec$,79,8) = LEFT$(ZDooredTo$+"        ",8)
  529.       MID$(ZMsgRec$,91,2) = STR$(ZReliableMode)
  530.       CALL BreakFileName (ZCurPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZFalse)
  531.       MID$(ZMsgRec$,93,8) = ZUserIn$ + SPACE$(8 - LEN(ZUserIn$))
  532.       MID$(ZMsgRec$,101,2) = STR$(ZLocalUser)
  533.       MID$(ZMsgRec$,103,2) = STR$(ZLocalUserMode)
  534.       ZConfName$ = LEFT$(ZConfName$,INSTR(ZConfName$ + " "," ") - 1)
  535.       MID$(ZMsgRec$,105,8) = ZConfName$ + SPACE$(8 - LEN(ZConfName$))
  536.       MID$(ZMsgRec$,115,1) = MID$(STR$(ZAutoLogoffReq),2,1)
  537.       MID$(ZMsgRec$,117,2) = STR$(ZMenuIndex)
  538.       MID$(ZMsgRec$,119,2) = LEFT$(DATE$,2)
  539.       MID$(ZMsgRec$,121,2) = MID$(DATE$,4,2)
  540.       MID$(ZMsgRec$,123,2) = RIGHT$(DATE$,2)
  541.       MID$(ZMsgRec$,125,2) = LEFT$(TIME$,2)
  542.       MID$(ZMsgRec$,127,2) = MID$(TIME$,4,2)
  543. ' ***   Save additional parameters for door restoral
  544.       CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
  545.       CALL PrintWorkA (STR$(ZLimitMinsPerSession))
  546.       CLOSE 2
  547.  
  548. (line 44000)
  549.  
  550.       SUB ReadProf STATIC
  551.       FIELD 1, 128 AS ZMsgRec$
  552.       GET 1,ZNodeRecIndex
  553.       ZReliableMode = VAL(MID$(ZMsgRec$,91,2))
  554.       MID$(ZMsgRec$,40,2) = "00"
  555.       ZEightBit = VAL(MID$(ZMsgRec$,42,2))
  556.       ZBPS = VAL(MID$(ZMsgRec$,44,2))
  557.       CALL CommInfo
  558.       ZBaudTest! = VAL(MID$(ZBaudRates$,(-5 * ZBPS),5))
  559.       ZUpperCase = VAL(MID$(ZMsgRec$,46,2))
  560.       ZNumDnldBytes! = CVS(MID$(ZMsgRec$,48,4))                      ' KG022101
  561.       ZBatchTransfer = (MID$(ZMsgRec$,52,1) = "1")
  562.       ZWasGR = VAL(MID$(ZMsgRec$,53,2))
  563.       HourLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,65,1))),2),2)
  564.       MinLoggedOn$  = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,66,1))),2),2)
  565.       SecLoggedOn$  = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,67,1))),2),2)
  566.       ZTimeLoggedOn$ = HourLoggedOn$ + _
  567.                         ":" + _
  568.                         MinLoggedOn$ + _
  569.                         ":" + _
  570.                         SecLoggedOn$
  571.       ZTransferFunction = VAL(MID$(ZMsgRec$,74,1))
  572.       ZWasFT$ = MID$(ZMsgRec$,75,1)
  573.       ZTimeCredits! = 60*CVI(MID$(ZMsgRec$,113,2))
  574.       ZDooredTo$ = MID$(ZMsgRec$,79,8)
  575.       CALL Trim (ZDooredTo$)
  576.       IF ZExitToDoors AND ZDooredTo$ <> "" THEN _
  577.          CALL OpenWork (2,ZDoorsDef$) : _
  578.          IF ZErrCode = 0 THEN _
  579.             CALL ReadParms (ZOutTxt$(),8,1) : _
  580.             WHILE ZErrCode = 0 AND ZOutTxt$(1) <> ZDooredTo$ : _
  581.                CALL ReadParms (ZOutTxt$(),8,1) : _
  582.             WEND : _
  583.             IF ZOutTxt$(1) = ZDooredTo$ THEN _
  584.                ZDoorSkipsPswd = (ZOutTxt$(6) <> "Y") : _
  585.                CALL BufFile (ZOutTxt$(7),WasX)
  586.       ZErrCode = 0
  587.       ZMenuIndex = VAL(MID$(ZMsgRec$,117,2))
  588.       ZCurPUI$ = MID$(ZMsgRec$,93,8)
  589.       CALL Remove (ZCurPUI$," ")
  590.       IF ZCurPUI$ <> "" THEN _
  591.          CALL BreakFileName (ZMainPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZTrue) : _
  592.          ZCurPUI$ = ZOutTxt$ + ZCurPUI$ + ZWasZ$
  593.       ZCustomPUI = (ZCurPUI$ <> "")
  594.       ZLocalUser = VAL(MID$(ZMsgRec$,101,2))
  595.       ZLocalUserMode = VAL(MID$(ZMsgRec$,103,2))
  596.       ZHomeConf$ = MID$(ZMsgRec$,105,8)
  597.       ZAutoLogoffReq = (VAL(MID$(ZMsgRec$,115,1)) <> 0)
  598.       CALL Trim (ZHomeConf$)
  599.       IF ZRequiredRings > 0 AND _
  600.          INSTR(ZModemInitCmd$,"S0=255") THEN _
  601.          COLOR 7,0,0 _
  602.       ELSE COLOR ZFG,ZBG,ZBorder
  603.       IF ZLocalUserMode THEN _
  604.          GOTO 44003
  605.       CALL SetBaud
  606.  
  607. ------------------------[ KG022001 ]-------------------------
  608.  
  609. Problem:  When using autodownload and do not specify an extension,
  610. and default is appended, file name transmitted has no extension.
  611.  
  612. Solution:  Change RBBSSUB5.BAS as follows:
  613.  
  614. 20247 ZWasDF = 0
  615.       CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse)
  616.       IF ZAutoDownInProgress THEN _
  617.          ZOutTxt$ = "Transferring -- " + _
  618.               WasX$ + "." + Extension$ : _                           ' KG022001
  619.          GOSUB 21640 : _
  620.          IF ZFileSysParm > 1 THEN _
  621.             RETURN
  622.       IF INSTR("...WRK.FW .ARC.EXE.COM.OBJ.WKS.LBR.ZIP.PAK.ZOO.LZH.","."+Extension$+".") > 2 OR _
  623.          MID$(Extension$,2,1) = "Q" OR _
  624.          (ZRequireNonASCII AND Extension$ = "BAS") THEN _
  625.             ZWasDF = ZTrue
  626.  
  627.  
  628. ------------------------[ KG021803 ]-------------------------
  629.  
  630. Problem:  In macro initialization of a variable, value includes the
  631. variable number if a space separates the command and number.   Should
  632. not matter whether say "{:=1" or "{:= 1", for example.
  633.  
  634. Solution:  Change RBBSSUB5.BAS as follows:
  635.  
  636. 63362 CALL Trim (WasX$)                                              ' KG021803
  637.       CALL CheckInt (WasX$)
  638.       WasX = INSTR(WasX$," ")
  639.       IF WasX > 0 AND ZTestedIntValue > 0 AND ZTestedIntValue <= ZMaxWorkVar THEN _
  640.          ZGSRAra$(ZTestedIntValue) = RIGHT$(WasX$,LEN(WasX$)-WasX)   ' KG021803
  641.       GOTO 63336
  642.  
  643. ------------------------[ KG021802 ]-------------------------
  644.  
  645. Problem:  When implement macros in the Fast File System, the macros
  646. are executed on more than download requests - including uploads and
  647. file v)iew archive.
  648.  
  649. Change RBBSSUB2.BAS as follows:
  650.  
  651. 20145 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,ZFalse) ' KG021802
  652.       IF ZOK THEN _
  653.          GOTO 20148
  654.  
  655. Change RBBSSUB4.BAS as follows:
  656.  
  657. (line 58700)
  658.  
  659.       SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,DoMacro) STATIC ' KG021802
  660.       ZOK = ZFalse
  661.       ZDotFlag = ZFalse
  662.       IF MarkingTime THEN _
  663.          CALL QuickTPut ("Searching for "+FilName$,0)
  664.       IF ZMenuIndex = 6 THEN _
  665.          GOTO 58705
  666.       NumSearch = 1
  667.       WasX = 0
  668.       WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
  669.          SDirAra$(NumSearch) <> ""
  670.          IF MarkingTime THEN _
  671.             CALL MarkTime (WasX)
  672.          WasX$ = SDirAra$(NumSearch) + _
  673.               FilName$
  674.          CALL FindFile (WasX$,ZOK)
  675.          NumSearch = NumSearch + 1
  676.       WEND
  677.       IF ZFastFileSearch AND NOT ZOK THEN _
  678.          CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18) : _
  679.          IF ZErrCode = 0 THEN _
  680.             CALL TrimTrail (FilName$,".") : _
  681.             CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$) : _
  682.             ZOK = (RecFoundAt > 0) : _
  683.             IF ZOK THEN _
  684.                ZOK = ZFalse : _
  685.                CALL CheckInt (MID$(RecFound$,13,4)) : _
  686.                IF ZTestedIntValue > 0 THEN _
  687.                   CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66) : _
  688.                   IF ZErrCode = 0 AND ZTestedIntValue <= HighRec THEN _
  689.                      FIELD 2, 66 AS LocatorRec$ : _
  690.                      GET 2, ZTestedIntValue : _
  691.                      WasX$ = LEFT$(LocatorRec$,63) : _
  692.                      CALL Trim (WasX$) : _
  693.                      IF LEFT$(WasX$,2) = "M!" THEN _
  694.                         ZOK = ZFalse : _                             ' KG021802
  695.                         ZDotFlag = ZTrue : _                         ' KG021802
  696.                         IF DoMacro THEN _                            ' KG021802
  697.                            WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _
  698.                            CALL Trim (WasX$) : _
  699.                            CALL MacroExe (WasX$) : _
  700.                            ZOK = ZFalse : _                          ' KG021802
  701.                            GOTO 58711 _                              ' KG021802
  702.                         ELSE GOTO 58711 _                            ' KG021802
  703.                      ELSE WasX$ = WasX$ + FilName$ : _
  704.                           CALL FindFile (WasX$,ZOK)
  705.       GOTO 58710
  706.  
  707. 58711 CALL SkipLine (-MarkingTime)                                   ' KG021802
  708.       END SUB
  709.  
  710. 59336 ZUserIn$(WasI) = LEFT$(PartToPrint$,INSTR(PartToPrint$," ") - 1)
  711.       CALL FindFile (ZPersonalDrvPath$ + ZUserIn$(WasI),ZOK)
  712.       IF ZOK THEN _
  713.          ZUserIn$(WasI) = ZPersonalDrvPath$ + ZUserIn$(WasI) _
  714.       ELSE CALL RotorsDir (ZUserIn$(WasI),ZSubDir$(),ZSubDirCount + _
  715.                       ((ZUserSecLevel < ZMinSecToView) OR _
  716.                        NOT ZCanDnldFromUp),ZTrue,ZFalse) : _         ' KG021802
  717.            GOSUB 59338
  718.       RETURN
  719.  
  720. Change RBBSSUB5.BAS as follows:
  721.  
  722. 20222 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + _
  723.                       ((ZUserSecLevel < ZMinSecToView) OR _
  724.                        NOT ZCanDnldFromUp),MarkingTime,ZTrue)        ' KG021802
  725.  
  726. 20440 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount,ZTrue,ZFalse) ' KG021802
  727. 20450 IF Extension$ <> Check$ THEN _
  728.          CALL RotorsDir (WasX$ + "." + Check$,ZSubDir$(),ZSubDirCount,ZTrue,ZFalse) : _ ' KG021802
  729.          IF ZOK THEN _
  730.             GOTO 20452
  731.       GOTO 20447
  732.  
  733. ------------------------[ KG021801 ]-------------------------
  734.  
  735. Problem:  internal code documentation for SmartText omits notes
  736. on what command invokes processing.
  737.  
  738. Change RBBSSUB4.BAS as follows:
  739.  
  740. 58266 SmartHold$ = DATE$                         ' DT Date           ' KG021801
  741.       RETURN
  742. 58267 CALL AMorPM
  743.       SmartHold$ = ZTime$                        ' TM Time           ' KG021801
  744.       RETURN
  745.  
  746. ------------------------[ KG021502 ]-------------------------
  747.  
  748. Problem:  When restrict a macro to the main prompt, and have a macro
  749. with same name as a conference (to join it), "j <conf>" works but
  750. "fn;ln;pswd;!<conf>" does not.  The macro gets substituted for
  751. "<conf>".
  752.  
  753. Solution:  Change RBBS-PC.BAS as follows:
  754.  
  755. 1205 IF ZSubParm < 0 THEN _
  756.         GOTO 202
  757.      ZSubParm = 1
  758.      ZStopInterrupts = ZFalse
  759.      ZNonStop = (ZPageLength < 1)
  760.      ZWasQ = 0
  761.      IF ZHomeConf$ <> "" AND ZHomeConf$ <> "MAIN" THEN _
  762.         TurboLogon = (NOT ConfMailJoin) : _
  763.         ConfMailJoin = ZFalse : _
  764.         ZFF = 8 : _
  765.         ZUserIn$(2) = ZHomeConf$ : _
  766.         ZHomeConf$ = "" : _
  767.         ZWasQ = 1 : _
  768.         ZAnsIndex = 1 : _
  769.         ZLastIndex = 2 : _
  770.         ZStoreParseAt = 1 : _
  771.         ZLastCommand$ = "MJ" : _                                     ' KG021502
  772.         GOTO 1240
  773.      CALL SkipLine (1)
  774.  
  775. ------------------------[ KG021502 ]-------------------------
  776.  
  777. Problem:  the prompt after a macro ends is repeated twice.
  778.  
  779. Solution:  Change RBBSSUB2.BAS as follows:
  780.  
  781. 1628 CALL VerifyAns
  782.      IF NOT ZOK THEN _
  783.         CALL QuickTPut1 ("Invalid answer <" + ZUserIn$(1) + ">") : _
  784.         GOTO 1500
  785.      HoldA$ = ""
  786.      ZForceKeyboard = ZFalse
  787.      IF ZMacroSave > 0 THEN _
  788.         ZGSRAra$(ZMacroSave) = ZUserIn$ : _
  789.         ZMacroSave = 0 : _
  790.         GOTO 1632
  791.      IF (ZDistantTGet > 0) OR (ZMacroTemplate$ <> "") THEN _
  792.         CALL WipeLine (38) : _
  793.         IF NOT ZNo THEN _
  794.            GOTO 1632 _
  795.         ELSE ZWasQ = 0 : _
  796.              ZMacroTemplate$ = "" : _
  797.              ZDistantTGet = 0 : _
  798.              ZNo = ZFalse : _
  799.              GOTO 1633
  800.      IF ZMacroActive THEN _
  801.         ZLastIndex = ZWasQ : _
  802.         FirstIndex = 1: _
  803.         ZMacroActive = NOT EOF(6) : _                                ' KG021501
  804.         EXIT SUB
  805.      IF ZAnsIndex > 255 OR ((NOT InStack) AND INSTR(ZUserIn$,".") > 0) THEN _
  806.         EXIT SUB
  807.      IF MacroIndex THEN _
  808.         MacroIndex = 1 _
  809.      ELSE MacroIndex = ZAnsIndex
  810.      CALL NoPath (ZUserIn$(MacroIndex),Found)
  811.      IF Found THEN _
  812.         EXIT SUB
  813.      CALL CheckMacro (ZUserIn$(MacroIndex),Found)
  814.      IF Found THEN _
  815.         ZStoreParseAt = ZAnsIndex : _
  816.         GOTO 1525
  817.      EXIT SUB
  818.  
  819. ------------------------[ RH021501 ]-------------------------
  820.  
  821. Problem:  autodownload just does not work.
  822.  
  823. Solution:  Change RBBSSUB3.BAS as follows:
  824.  
  825. 20296 CALL FlushCom(ZWasY$)              ' CLEAR THE COMM BUFFER OF GARBAGE
  826.       IF ZSubParm = -1 THEN _
  827.          EXIT SUB
  828.       CALL PutCom (ZEscape$+"OD")         ' SEND "ALERT" STRING
  829.       IF ZSubParm = -1 THEN _
  830.          EXIT SUB
  831.       IF ZAbort = ZTrue THEN _
  832.          GOTO 20306
  833.       CALL LPrnt("Sending FILENAME -- ",1)
  834.       CALL LPrnt(ZReturnLineFeed$ + CHR$(9),0)
  835.       CALL DelayTime (1)                   ' WAIT 1 SECOND FOR SETUP
  836. '
  837. '               SEND ONE CHARACTER AT A TIME
  838. '
  839.       CALL BreakFileName (ZUserIn$(ZAnsIndex),WasX$,ZOutTxt$,ZWasY$,ZTrue) ' RH021501
  840.       ZOutTxt$ = ZOutTxt$ + ZWasY$ + "=X"                            ' RH021501
  841.       FOR WasX = 1 TO LEN(ZOutTxt$)
  842.          CALL PutCom (MID$(ZOutTxt$,WasX,1))     ' SEND 1 CHARACTER
  843.          IF ZSubParm = -1 THEN _
  844.             EXIT SUB
  845.          IF ZAbort = ZTrue THEN _
  846.             GOTO 20306
  847.          CALL LPrnt(MID$(ZOutTxt$,WasX,1),0)     ' DISPLAY IF NEEDED
  848.          ZDelay! = TIMER + 10            ' SET MAXIMUM TIME TO WAIT FOR Reply
  849.          Char = ZTrue
  850.          WHILE Char = -1
  851.             CALL CheckTime(ZDelay!, TempElapsed!, 1)
  852.             IF TempElapsed! <= 0 THEN _
  853.                GOTO 20300     ' IF ZNo ECHO, CANCEL FILENAME Transfer
  854.             CALL EofComm (Char)
  855.          WEND                 ' JUMP OUT IF CHARACTER IS RECEIVED
  856.  
  857. Change RBBSSUB4.BAS as follows:
  858.  
  859. (line 59400)
  860.       SUB LogPDown (PrivateDnld,DwnIndex) STATIC                     ' RH021501
  861.       IF NOT PrivateDnld THEN _
  862.          EXIT SUB
  863.       ZWasEN$ = ZPersonalDir$
  864.       WasBX = &H4
  865.       ZSubParm = 9
  866.       CALL FileLock
  867.       WasL = 36 + ZMaxDescLen + ZPersonalLen
  868.       CLOSE 2
  869.       IF ZShareIt THEN _
  870.          OPEN ZWasEN$ FOR RANDOM SHARED AS #2 LEN=WasL _
  871.       ELSE OPEN "R",2,ZPersonalDir$,WasL
  872.       FIELD #2,WasL AS PersonalRec$
  873.       ZWasA = VAL(MID$(ZUserIn$(0),5 * (DwnIndex - 1) + 1,5))        ' RH021501
  874.       GET #2,ZWasA
  875.       MID$(PersonalRec$,WasL-2,1) = "!"
  876.       PUT #2,ZWasA
  877.       CALL UnLockAppend
  878.       END SUB 
  879.  
  880. Change RBBSSUB3.BAS as follows:
  881.  
  882. 20296 CALL FlushCom(ZWasY$)              ' CLEAR THE COMM BUFFER OF GARBAGE
  883.       IF ZSubParm = -1 THEN _
  884.          EXIT SUB
  885.       CALL PutCom (ZEscape$+"OD")         ' SEND "ALERT" STRING
  886.       IF ZSubParm = -1 THEN _
  887.          EXIT SUB
  888.       IF ZAbort = ZTrue THEN _
  889.          GOTO 20306
  890.       CALL LPrnt("Sending FILENAME -- ",1)
  891.       CALL LPrnt(ZReturnLineFeed$ + CHR$(9),0)
  892.       CALL DelayTime (1)                   ' WAIT 1 SECOND FOR SETUP
  893. '
  894. '               SEND ONE CHARACTER AT A TIME
  895. '
  896.       CALL BreakFileName (ZUserIn$(ZAnsIndex),WasX$,ZOutTxt$,ZWasY$,ZTrue) ' RH021501
  897.       ZOutTxt$ = ZOutTxt$ + ZWasY$ + "=X"                            ' RH021501
  898.       FOR WasX = 1 TO LEN(ZOutTxt$)
  899.          CALL PutCom (MID$(ZOutTxt$,WasX,1))     ' SEND 1 CHARACTER
  900.          IF ZSubParm = -1 THEN _
  901.             EXIT SUB
  902.          IF ZAbort = ZTrue THEN _
  903.             GOTO 20306
  904.          CALL LPrnt(MID$(ZOutTxt$,WasX,1),0)     ' DISPLAY IF NEEDED
  905.          ZDelay! = TIMER + 10            ' SET MAXIMUM TIME TO WAIT FOR Reply
  906.          Char = ZTrue
  907.          WHILE Char = -1
  908.             CALL CheckTime(ZDelay!, TempElapsed!, 1)
  909.             IF TempElapsed! <= 0 THEN _
  910.                GOTO 20300     ' IF ZNo ECHO, CANCEL FILENAME Transfer
  911.             CALL EofComm (Char)
  912.          WEND                 ' JUMP OUT IF CHARACTER IS RECEIVED
  913.  
  914.